///////////// 这个是练习退出状态获取部分

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <wait.h>
#include <stdlib.h>
int main()
{
	pid_t id = fork();
	if(id == 0)
	{
		printf("我是子\n");
//		int num = 1/0;	
		//退出码设置为 1
		exit(100);
	}
	//父进程等待获取子进程退出信息
	int wstatus = 0;
	pid_t rid = waitpid(id,&wstatus , 0);
	if(rid > 0)
	{
		//						                 这个计算下来就是退出状态
		// 因为退出信号就在低 8 位 , 所以直接 & 0x7F 
		printf("Success ! rid : %d , exit code : %d , exit signal : %d\n", rid , (wstatus>>8) & 0XFF , wstatus&0X7F);
		printf("Success ! rid : %d , exit code : %d , exit signal : %d\n", rid , WEXITSTATUS(wstatus) , wstatus&0X7F);
		//查看子进程是否正常退出 
		
		printf("%d\n" ,  WIFEXITED(wstatus));
	}
	return 0;
}

